CouchDB ডকুমেন্ট-ভিত্তিক ডাটাবেস হিসেবে MapReduce ব্যবহার করে ডেটার কুয়েরি এবং বিশ্লেষণ করতে Views তৈরি করার সুবিধা দেয়। CouchDB-তে দুটি প্রধান ধরণের views রয়েছে: Temporary Views এবং Permanent Views। এদের মধ্যে মূল পার্থক্য হলো কিভাবে এবং কতটা সময় ধরে এগুলো ডেটাকে প্রসেস এবং ব্যবহার করা হয়।
1. Temporary Views
Temporary Views হল সেগুলি যেগুলি অস্থায়ীভাবে তৈরি করা হয় এবং একটি কুয়েরি সেশন চলাকালীন সময় পর্যন্ত উপলব্ধ থাকে। অর্থাৎ, যখন আপনি একটি কুয়েরি চালান, তখন CouchDB ওই কুয়েরির জন্য একটি temporary view তৈরি করে এবং যখন কুয়েরি সমাপ্ত হয়, তখন এটি মুছে ফেলা হয়। এটি মূলত অস্থায়ী বিশ্লেষণ বা কাস্টম কুয়েরি করার জন্য ব্যবহৃত হয়, যেগুলি দীর্ঘস্থায়ীভাবে সঞ্চিত বা পুনরায় ব্যবহৃত হওয়ার প্রয়োজন নেই।
Temporary Views এর বৈশিষ্ট্য:
- এককালীন ব্যবহার: এটি সাধারণত একবারে একটি নির্দিষ্ট কুয়েরি পরিচালনা করতে ব্যবহৃত হয়।
- কম্পাইলেশন: Temporary view কুয়েরি করার জন্য দ্রুততর এবং কম্পাইল করার প্রয়োজন হয় না।
- কনফিগারেশন: আপনি কেবলমাত্র একটি নির্দিষ্ট কুয়েরি কার্যকর করতে temporary views তৈরি করেন, সেগুলি পরবর্তীতে আর ব্যবহার করা হয় না।
Temporary Views তৈরি করার উদাহরণ:
// Map Function
function(doc) {
if (doc.type === 'user') {
emit(doc.name, doc.age);
}
}
// কুয়েরি চালান
db.query('my_view', {map: function(doc) { emit(doc.name, doc.age); }});
এই ভিউটি কেবলমাত্র এই কুয়েরির জন্য ব্যবহৃত হবে এবং পরবর্তীতে মুছে ফেলা হবে।
2. Permanent Views
Permanent Views হল সেগুলি যেগুলি স্থায়ীভাবে CouchDB-তে সংরক্ষিত থাকে এবং পরবর্তীতে পুনরায় ব্যবহার করা যায়। Permanent views তৈরি করার জন্য View Index তৈরি করা হয় যা ডেটাবেসে একটি নির্দিষ্ট টাইপের ডেটার ওপর কাস্টম কুয়েরি চালাতে সক্ষম করে। যখন আপনি permanent view তৈরি করেন, তখন আপনি সেই view-টি পরবর্তীতে barred query operations অথবা other view queries এর জন্য ব্যবহার করতে পারেন।
Permanent Views এর বৈশিষ্ট্য:
- স্থায়ী সংরক্ষণ: এই views সিস্টেমে স্থায়ীভাবে সংরক্ষিত থাকে এবং যেকোনো সময় পুনরায় ব্যবহার করা যেতে পারে।
- ডাটাবেসের অংশ: Permanent views ডেটাবেসের অংশ হিসেবে সংরক্ষিত হয় এবং সেগুলি আগের থেকে সংরক্ষিত index এর মাধ্যমে দ্রুত অনুসন্ধান চালাতে সহায়ক।
- ইনডেক্স তৈরি: Permanent views তৈরি হলে, এগুলোর জন্য index তৈরি করা হয়, যাতে কুয়েরি দ্রুততর হয়।
Permanent Views তৈরি করার উদাহরণ:
- View Definition: Permanent view তৈরি করতে প্রথমে একটি design document তৈরি করতে হয়, যা CouchDB-তে একটি স্থায়ী কুয়েরি হিসাবে সংরক্ষিত থাকে।
{
"_id": "_design/users",
"views": {
"by_name": {
"map": "function(doc) { if (doc.type === 'user') emit(doc.name, doc.age); }"
}
}
}
- Permanent View কুয়েরি চালানো: এই permanent view এর মাধ্যমে আপনি query করতে পারেন:
GET /database/_design/users/_view/by_name
এটি আপনাকে user টাইপের ডকুমেন্টগুলি নামের ভিত্তিতে সাজিয়ে দিবে।
Temporary Views এবং Permanent Views এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Temporary Views | Permanent Views |
|---|---|---|
| সংরক্ষণ | অস্থায়ী, শুধুমাত্র কুয়েরি চলাকালীন | স্থায়ী, ডাটাবেসে সংরক্ষিত |
| ব্যবহার | এককালীন কুয়েরি বা ডেটা বিশ্লেষণ | পুনরায় ব্যবহারযোগ্য, কাস্টম কুয়েরি |
| প্রপার্টি | কেবলমাত্র কুয়েরি সেশন পর্যন্ত উপলব্ধ | একবার তৈরি হলে স্থায়ীভাবে সংরক্ষিত |
| প্রদর্শন | কম্পাইল এবং একটি কুয়েরি সেশনের জন্য | একাধিক কুয়েরি এবং বৃহৎ ডেটার জন্য কার্যকর |
| কনফিগারেশন প্রয়োজন | কুয়েরি চলাকালীন সেটি সংজ্ঞায়িত করা হয় | কনফিগারেশন ফাইল এবং ডেটাবেসে ডিফাইন করা হয় |
| প্রতিবার ব্যবহার | না, শুধুমাত্র একবার ব্যবহৃত হয় | হ্যাঁ, বার বার ব্যবহার করা যায় |
উপসংহার
- Temporary Views প্রধানত এককালীন কুয়েরি এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। এগুলি কেবলমাত্র সেশন চলাকালীন সময় পর্যন্ত থাকে এবং সেগুলি পরবর্তীতে পুনরায় ব্যবহার করা হয় না।
- Permanent Views স্থায়ীভাবে সংরক্ষিত থাকে এবং বার বার ব্যবহৃত হয়। এগুলি indexing এবং view caching এর মাধ্যমে দ্রুত অনুসন্ধান করার জন্য উপযুক্ত।
আপনার প্রয়োজন অনুযায়ী, আপনি কোন ধরনের view ব্যবহার করবেন তা নির্ভর করবে আপনার ডেটার ধরন এবং কুয়েরির প্রক্রিয়ার উপর।